Wireless communications devices (smart phones, cell phones, PDAs, or other such mobile devices) are becoming ubiquitous. These devices offer a panoply of features such as voice communications, e-mail, text messaging, Web browsing, calendaring, etc. Wireless communications devices equipped with Global Positioning System (GPS) receivers or other position-determining subsystems make the devices “location-aware” and thus enable a range of additional features, including navigation, location-based services, geo-tagging, and automatic location-based configuration of the device such as, for example, an automatic time-zone setting on the device. Some examples of location-based services are local weather, local news, local events, local shopping deals, identifying contacts or buddies in the immediate vicinity, providing traffic reports, alerts, etc. Location-based services can be used to locate the closest gas station, ATM, restaurant, hotel, or any other commercial or government establishment.
All of these services and features exploit knowledge of the device's current location. Many of these services such as location-based services (LBS), geotagging and automatic device configuration depend on reverse geocoding of geographical coordinates representing a current location of the device. Reverse geocoding is essentially a reverse lookup in a geographic information database that stores geographical information. Upon receipt of geographical coordinates, the reverse-geocoder determines what geographical features or entities are located at or near the coordinates. The reverse geocoder thus responds with a location description of what is at, or proximal to, the provided coordinates. Depending on the requested resolution and the filters applied, the results from the reverse-geocoder can be any sort of textual description for a location, such as, for example, a street address, city name, postal code, state/province, country, time zone, etc. At higher (“street-level”) resolution, and again depending on the filtering, the reverse geocoder may return landmarks, hotels, gas stations, banks, restaurants, etc. Various GIS (geographical information service) and LBS (location-based service) databases can provide virtually any type of information—local weather, the presence of buddies/contacts, special events, alerts, etc. Another example of reverse geocoding is geo-tagging photos, videos, blogs, or other data. Reverse geocoding enables the device to determine a meaningful textual description of the location (e.g. a place name) in order to enable the device to geo-tag the data (e.g. digital photo file) with the name or description of the location where the data was created.
The request and response to and from a reverse geocoding server (reverse-geocoder) can take a few seconds, depending on network latency and the server throughput. This request-response lag negatively impacts the overall user experience and renders impractical or undesirable many otherwise useful applications that could be provided by reverse geocoding the location coordinates of the device. Not only does the conventional approach to reverse geocoding result in poor responsiveness for the application on the device but the frequent server calls have the deleterious effect of burdening both device and network resources. This has remained a technical problem for which there was, until now, no adequate solution.
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.